草庐IT

Android Explicit Intent 抛出 NoClassDefFounderror

全部标签

C++从代码中的不同位置抛出相同的错误消息

我想从不同的地方抛出同样的错误。这是一个例子:intdevide(inta,intb){if(b==0){throw"bmustbedifferentfrom0";}return0;}intmod(inta,intb){if(b==0){throw"bmustbedifferentthan0";}return0;}在主函数中:intmain(){try{devide(1,0);}catch(charconst*e){cout现在程序的输出是:bmustbedifferentfrom0bmustbedifferentthan0如您所见,错误本质上是相同的,但错误消息不同。那么在这种情况下

c++ - 抛出异常时获取堆栈跟踪

我现在正在调试一个使用许多不同线程的程序。有一个不时抛出的异常。问题是无法知道是哪个线程导致了问题...有谁知道抛出异常后获取堆栈跟踪的简单方法?我考虑过简单地编写调试消息,但这将是一个巨大的:-)我想有比这个更好的技术......我正在使用VisualStudio2008-nativeC++项目.... 最佳答案 除非我大错特错,否则您需要知道哪个线程触发了异常才能使用VisualStudio调试器的调用堆栈View,这显然是您目前所处的catch-22情况。我会尝试的一件事是查看是否可以让调试器在抛出异常时中断(使用“调试”>“

c++ - 当函数的异常规范具有基类型时,函数能否抛出派生类异常?

我有以下代码。classBase{};classDerived:publicBase{};classTest{public:voidfun()throw(Base){throwDerived();}};intmain(){Testob;ob.fun();}当函数fun()的异常规范列表具有基类型时,函数fun()可以抛出派生类型的异常吗? 最佳答案 由于Derived派生自Base,因此从技术上讲,它是一个Base。所以,是的,如果您的方法签名列出了它们的基类型,您可以抛出派生异常类型。但请注意,正如@MSalters所说,有iss

c++ - 如何避免在从 .so 调用函数抛出异常时崩溃

这是我所做的,我想优雅地处理这个异常:代码片段:我的.cpp#includeextern"C"voidsome_func(){throw"(ExceptionThrownbysome_func!!)";}代码片段:exception.c#includeexternvoidsome_func();intso_main(){some_func();return0;}从上面的两个片段中,我使用以下命令创建了一个shared_objectlibexception.so:g++-c-fPICsrc/my.cppgcc-c-ansi-fPICsrc/exception.cg++-fPIC-shar

c++ - 当代码不严格符合标准时,如何强制 clang 抛出错误?

我正在编写一个C++11库,我希望它能与支持C++11的每个编译器一起使用。我不想不小心编写不标准的代码(例如使用VLA或block等语言扩展)。如何强制clang禁用所有语言扩展,以便我只能编写一致的代码? 最佳答案 尝试oneofthese:-pedantic:Warnonlanguageextensions.-pedantic-errors:Erroronlanguageextensions. 关于c++-当代码不严格符合标准时,如何强制clang抛出错误?,我们在StackOve

c++ - 在什么情况下 delete 运算符会抛出错误?

在我的链表实现中,删除内部类Node实例的辅助函数deleteNode(Node*)抛出运行时错误,通过“触发断点”在VS2015的本地Windows调试器中。我小心地匹配我的new和delete运算符。范围/引用是否发挥了我没有意识到的作用?即使clear()中存在逻辑错误并且deleteNode()被传递给nullptr,它也不应该抛出错误删除nullptr,然后将nullptr赋值给自己吧?该删除有什么问题?classLinkedList{public:LinkedList():head(nullptr){}~LinkedList(){clear();}voidpush_fron

C++:如果抛出异常,超出范围的对象是否被销毁?

通常它会在作用域结束时被销毁。但是如果抛出异常,我可以看到会发生问题。 最佳答案 是的。C++标准n333715异常处理§15.2构造函数和析构函数1)Ascontrolpassesfromathrow-expressiontoahandler,destructorsareinvokedforallautomaticobjectsconstructedsincethetryblockwasentered.Theautomaticobjectsaredestroyedinthereverseorderofthecompletionof

c++ - vector 和 map 抛出异常

我的任务是输出所有十位数字,其中数字不重复。我首先使用的是这样的东西:#include#include#include#include#includeusingnamespacestd;voidTask5(){autoinitialization=[](map*m,intcount){for(inti=0;i*m,intcount,intvalue){for(inti=9;i>count;--i)m[count][i][value]=false;};/*Forcreatecopymap*/automould=[](map*m,map*m_copy,intcount)->map*{if(

c++ - 外部 "C"DLL : Debug is OK, 发布抛出错误 C2059

我有一个作为C++Win32应用程序创建的DLL。为了防止在我的DLL中出现名称混淆,我使用了下面定义的EXPORT定义:#ifndefEXPORT#defineEXPORTextern"C"__declspec(dllexport)#endifEXPORTint_stdcallSteadyFor(doublePar[],doubleInlet[],doubleOutlet[]);为了编译这段代码,我必须进入项目的属性并将C/C++CallingConvention设置为__stdcall(/Gz)并设置CompileAs到CompileasC++Code(/TP)。这在Debug模式

c++ - 为什么这个程序抛出 'std::system_error' ?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whydoesthissimplestd::threadexamplenotwork?代码:#include#includevoidf(){std::cout问题:$g++-othread_testthread_test.cpp-std=c++0x$./thread_testterminatecalledafterthrowinganinstanceof'std::system_error'what():OperationnotpermittedAbortado“Abortado”在我的语言环境中表示“中止”